Organized groupings of computers, which may be known as computer clusters, use inexpensive server computers to provide high-performance computing (HPC) capabilities to client computing devices. These computing devices submit job requests to these server computers, which are commonly referred to as nodes. Each job request refers to a set of (processing) tasks to be scheduled for execution. An example job request may consist of a single task or multiple tasks. The server computers may execute these tasks serially as single processes or in parallel as multiple processes. Certain server computers may be reserved exclusively for a particular class of job requests or tasks while other server computers may be available for any job request/task.
As computational demands increase, it is often inefficient and costly for an enterprise to expand on-premise computer cluster capacity to satisfy evolving client needs. One approach is to leverage services from cloud computing providers. Instead of adding new hardware or licensing more software, the organization may simply lease computing resource capabilities for a certain time period. Once the computer cluster acquires access to the cloud computing resources, job request execution commences in accordance with a policy.
One policy is to directly forward job requests from the computer cluster to the cloud computing provider based on various pre-defined parameters/conditions. With this policy, however, the computer cluster cannot determine job request execution status or monitor progress. Another policy is to lease computing resource capacities from the cloud computing provider in anticipation of job request demands. While monitoring job request execution progress is possible with this approach, computing resource leasing cannot be performed dynamically and central control over the leased resources is frustrated.